<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: ORB_SLAM2::LocalMapping Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_o_r_b___s_l_a_m2_1_1_local_mapping.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="class_o_r_b___s_l_a_m2_1_1_local_mapping-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ORB_SLAM2::LocalMapping Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> tiene una única instancia ejecutando el método Run en su propio thread.  
 <a href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_local_mapping_8h_source.html">LocalMapping.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ORB_SLAM2::LocalMapping:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_o_r_b___s_l_a_m2_1_1_local_mapping__coll__graph.svg" width="2832" height="1164"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab0900c4ceaf6a615f53bc113f682daa6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ab0900c4ceaf6a615f53bc113f682daa6">AcceptKeyFrames</a> ()</td></tr>
<tr class="memdesc:ab0900c4ceaf6a615f53bc113f682daa6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa si <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> acepta nuevos keyframes.  <a href="#ab0900c4ceaf6a615f53bc113f682daa6">More...</a><br /></td></tr>
<tr class="separator:ab0900c4ceaf6a615f53bc113f682daa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2d70466a1a217fb7e55d874931ce688"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#af2d70466a1a217fb7e55d874931ce688">InsertKeyFrame</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *pKF)</td></tr>
<tr class="memdesc:af2d70466a1a217fb7e55d874931ce688"><td class="mdescLeft">&#160;</td><td class="mdescRight">Método usado por el tracker para solicitar la inclusión de un nuevo keyframe.  <a href="#af2d70466a1a217fb7e55d874931ce688">More...</a><br /></td></tr>
<tr class="separator:af2d70466a1a217fb7e55d874931ce688"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8fcbbdacfaeca558c5aaff32f42a57b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ad8fcbbdacfaeca558c5aaff32f42a57b">InterruptBA</a> ()</td></tr>
<tr class="memdesc:ad8fcbbdacfaeca558c5aaff32f42a57b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solicita interrupción de BA.  <a href="#ad8fcbbdacfaeca558c5aaff32f42a57b">More...</a><br /></td></tr>
<tr class="separator:ad8fcbbdacfaeca558c5aaff32f42a57b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06ce22a736be265a6856582d31e888d6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a06ce22a736be265a6856582d31e888d6">isFinished</a> ()</td></tr>
<tr class="memdesc:a06ce22a736be265a6856582d31e888d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa si <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> ha terminado.  <a href="#a06ce22a736be265a6856582d31e888d6">More...</a><br /></td></tr>
<tr class="separator:a06ce22a736be265a6856582d31e888d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a964b156d8dfcedf91d61e47aa51e973a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a964b156d8dfcedf91d61e47aa51e973a">isStopped</a> ()</td></tr>
<tr class="memdesc:a964b156d8dfcedf91d61e47aa51e973a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa el si <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> está parado.  <a href="#a964b156d8dfcedf91d61e47aa51e973a">More...</a><br /></td></tr>
<tr class="separator:a964b156d8dfcedf91d61e47aa51e973a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8299d3b0c603784de01ac2242f4916be"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a8299d3b0c603784de01ac2242f4916be">KeyframesInQueue</a> ()</td></tr>
<tr class="memdesc:a8299d3b0c603784de01ac2242f4916be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa la cantidad de keyframes en la cola para agregarse al mapa.  <a href="#a8299d3b0c603784de01ac2242f4916be">More...</a><br /></td></tr>
<tr class="separator:a8299d3b0c603784de01ac2242f4916be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa87b27706cc45e36cbb8c7a21c90ed23"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#aa87b27706cc45e36cbb8c7a21c90ed23">LocalMapping</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *pMap, const float bMonocular)</td></tr>
<tr class="memdesc:aa87b27706cc45e36cbb8c7a21c90ed23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor de la única instancia de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a>.  <a href="#aa87b27706cc45e36cbb8c7a21c90ed23">More...</a><br /></td></tr>
<tr class="separator:aa87b27706cc45e36cbb8c7a21c90ed23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec0950308ba2d828d9dc16d5be34e654"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#aec0950308ba2d828d9dc16d5be34e654">Release</a> ()</td></tr>
<tr class="memdesc:aec0950308ba2d828d9dc16d5be34e654"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invocado desde otros hilos, limpia el buffer de keyframes nuevos y reanuda el mapeo.  <a href="#aec0950308ba2d828d9dc16d5be34e654">More...</a><br /></td></tr>
<tr class="separator:aec0950308ba2d828d9dc16d5be34e654"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac22bd2b73269435e04c353190eae7c13"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ac22bd2b73269435e04c353190eae7c13">RequestFinish</a> ()</td></tr>
<tr class="memdesc:ac22bd2b73269435e04c353190eae7c13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solicita terminar para cerrar el sistema.  <a href="#ac22bd2b73269435e04c353190eae7c13">More...</a><br /></td></tr>
<tr class="separator:ac22bd2b73269435e04c353190eae7c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e2754881977ca4d9dc7b3d0c06b4eb8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a1e2754881977ca4d9dc7b3d0c06b4eb8">RequestReset</a> ()</td></tr>
<tr class="memdesc:a1e2754881977ca4d9dc7b3d0c06b4eb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solicitud de reinicialización.  <a href="#a1e2754881977ca4d9dc7b3d0c06b4eb8">More...</a><br /></td></tr>
<tr class="separator:a1e2754881977ca4d9dc7b3d0c06b4eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0931d72a1f25f3e012f53f3e693e2a47"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0931d72a1f25f3e012f53f3e693e2a47">RequestStop</a> ()</td></tr>
<tr class="memdesc:a0931d72a1f25f3e012f53f3e693e2a47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solicitud de pausa.  <a href="#a0931d72a1f25f3e012f53f3e693e2a47">More...</a><br /></td></tr>
<tr class="separator:a0931d72a1f25f3e012f53f3e693e2a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f9fa8a0236f55629b0f485db05deb2c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0f9fa8a0236f55629b0f485db05deb2c">Run</a> ()</td></tr>
<tr class="memdesc:a0f9fa8a0236f55629b0f485db05deb2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bucle principal del thread de mapeo local.  <a href="#a0f9fa8a0236f55629b0f485db05deb2c">More...</a><br /></td></tr>
<tr class="separator:a0f9fa8a0236f55629b0f485db05deb2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b29c603541a13d670c53348e59081bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a5b29c603541a13d670c53348e59081bf">SetAcceptKeyFrames</a> (bool flag)</td></tr>
<tr class="memdesc:a5b29c603541a13d670c53348e59081bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Establece la aceptación de nuevos keyframes.  <a href="#a5b29c603541a13d670c53348e59081bf">More...</a><br /></td></tr>
<tr class="separator:a5b29c603541a13d670c53348e59081bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af64985dda85b4f0775ef2ef7fc9b5942"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#af64985dda85b4f0775ef2ef7fc9b5942">SetLoopCloser</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a> *pLoopCloser)</td></tr>
<tr class="memdesc:af64985dda85b4f0775ef2ef7fc9b5942"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registra el LoopCloser, la única instancia en el sistema.  <a href="#af64985dda85b4f0775ef2ef7fc9b5942">More...</a><br /></td></tr>
<tr class="separator:af64985dda85b4f0775ef2ef7fc9b5942"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae33aa5640d61d5434bd0ad00e27d8e76"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ae33aa5640d61d5434bd0ad00e27d8e76">SetNotStop</a> (bool flag)</td></tr>
<tr class="memdesc:ae33aa5640d61d5434bd0ad00e27d8e76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Establece la señal de no parar, que ignora solicitudes de parada.  <a href="#ae33aa5640d61d5434bd0ad00e27d8e76">More...</a><br /></td></tr>
<tr class="separator:ae33aa5640d61d5434bd0ad00e27d8e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a164b3d0a2a75daba006469ea8aca8a63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a164b3d0a2a75daba006469ea8aca8a63">SetTracker</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html">Tracking</a> *pTracker)</td></tr>
<tr class="memdesc:a164b3d0a2a75daba006469ea8aca8a63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registra el tracker, la única instancia en el sistema.  <a href="#a164b3d0a2a75daba006469ea8aca8a63">More...</a><br /></td></tr>
<tr class="separator:a164b3d0a2a75daba006469ea8aca8a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6acf915f6b65bd4e2341e85a320d4930"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a6acf915f6b65bd4e2341e85a320d4930">Stop</a> ()</td></tr>
<tr class="memdesc:a6acf915f6b65bd4e2341e85a320d4930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invocado en el bucle principal de Run, para procesar pedidos de parada.  <a href="#a6acf915f6b65bd4e2341e85a320d4930">More...</a><br /></td></tr>
<tr class="separator:a6acf915f6b65bd4e2341e85a320d4930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0474accda8e5e59048c10b1a71269881"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0474accda8e5e59048c10b1a71269881">stopRequested</a> ()</td></tr>
<tr class="memdesc:a0474accda8e5e59048c10b1a71269881"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa si se ha solicitado una parada.  <a href="#a0474accda8e5e59048c10b1a71269881">More...</a><br /></td></tr>
<tr class="separator:a0474accda8e5e59048c10b1a71269881"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a872cbbdab3f88ffc2d9d395ef2cf0e8d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a872cbbdab3f88ffc2d9d395ef2cf0e8d">CheckFinish</a> ()</td></tr>
<tr class="memdesc:a872cbbdab3f88ffc2d9d395ef2cf0e8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa si terminó.  <a href="#a872cbbdab3f88ffc2d9d395ef2cf0e8d">More...</a><br /></td></tr>
<tr class="separator:a872cbbdab3f88ffc2d9d395ef2cf0e8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27db88f75fe6f2bd43b0bd0769d56462"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a27db88f75fe6f2bd43b0bd0769d56462">CheckNewKeyFrames</a> ()</td></tr>
<tr class="memdesc:a27db88f75fe6f2bd43b0bd0769d56462"><td class="mdescLeft">&#160;</td><td class="mdescRight">Consulta la lista de nuvos keyframes mlNewKeyFrames.  <a href="#a27db88f75fe6f2bd43b0bd0769d56462">More...</a><br /></td></tr>
<tr class="separator:a27db88f75fe6f2bd43b0bd0769d56462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac72419089ac268253671b8da2ec12c21"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ac72419089ac268253671b8da2ec12c21">ComputeF12</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&amp;pKF1, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&amp;pKF2)</td></tr>
<tr class="memdesc:ac72419089ac268253671b8da2ec12c21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computa la matriz fundamental F del keyframe 1 respecto del keyframe 2.  <a href="#ac72419089ac268253671b8da2ec12c21">More...</a><br /></td></tr>
<tr class="separator:ac72419089ac268253671b8da2ec12c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac06b513357429d9eff89e29d2ae58d6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ac06b513357429d9eff89e29d2ae58d6c">CreateNewMapPoints</a> ()</td></tr>
<tr class="memdesc:ac06b513357429d9eff89e29d2ae58d6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">El ciclo de mapeo local invoca periódicamente este método, que busca macheos candidatos para su triangulación y agregado al mapa.  <a href="#ac06b513357429d9eff89e29d2ae58d6c">More...</a><br /></td></tr>
<tr class="separator:ac06b513357429d9eff89e29d2ae58d6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca73e5b4bace436b235dfa9c9a522b19"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#aca73e5b4bace436b235dfa9c9a522b19">KeyFrameCulling</a> ()</td></tr>
<tr class="memdesc:aca73e5b4bace436b235dfa9c9a522b19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Elimina keyframes redundantes, que no agregan información.  <a href="#aca73e5b4bace436b235dfa9c9a522b19">More...</a><br /></td></tr>
<tr class="separator:aca73e5b4bace436b235dfa9c9a522b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbbb8f04b15e3250e0e24070825d19ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#acbbb8f04b15e3250e0e24070825d19ae">MapPointCulling</a> ()</td></tr>
<tr class="memdesc:acbbb8f04b15e3250e0e24070825d19ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Elimina por varios motivos puntos recién agregados.  <a href="#acbbb8f04b15e3250e0e24070825d19ae">More...</a><br /></td></tr>
<tr class="separator:acbbb8f04b15e3250e0e24070825d19ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84eea8f268cce9d919a4906ae634dd22"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a84eea8f268cce9d919a4906ae634dd22">ProcessNewKeyFrame</a> ()</td></tr>
<tr class="memdesc:a84eea8f268cce9d919a4906ae634dd22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Actualiza <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a1e4de53f96e97c6b94b794d0a5bc67e3" title="Keyframe actual, el último keyframe nuevo que se ha procesado. ">LocalMapping.mpCurrentKeyFrame</a>, y quita el nuevo keyframe de la lista <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a4a365466d11db0f8e8fc14d76fc0cd83" title="Buffer de solicitud de nuevos keyframes. ">LocalMapping.mlNewKeyFrames</a>.  <a href="#a84eea8f268cce9d919a4906ae634dd22">More...</a><br /></td></tr>
<tr class="separator:a84eea8f268cce9d919a4906ae634dd22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fe34beadb62eaa9446c96d27a5d12c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a3fe34beadb62eaa9446c96d27a5d12c9">ResetIfRequested</a> ()</td></tr>
<tr class="memdesc:a3fe34beadb62eaa9446c96d27a5d12c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Procesa la solicitud de reinicio.  <a href="#a3fe34beadb62eaa9446c96d27a5d12c9">More...</a><br /></td></tr>
<tr class="separator:a3fe34beadb62eaa9446c96d27a5d12c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d5e0bc6fd15d9a6bf1ca8a258f104f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a5d5e0bc6fd15d9a6bf1ca8a258f104f1">SearchInNeighbors</a> ()</td></tr>
<tr class="memdesc:a5d5e0bc6fd15d9a6bf1ca8a258f104f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recorre los keyframes vecinos buscando puntos para fusionar.  <a href="#a5d5e0bc6fd15d9a6bf1ca8a258f104f1">More...</a><br /></td></tr>
<tr class="separator:a5d5e0bc6fd15d9a6bf1ca8a258f104f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a6e5b76640d7584b749567d0328ccdc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a1a6e5b76640d7584b749567d0328ccdc">SetFinish</a> ()</td></tr>
<tr class="memdesc:a1a6e5b76640d7584b749567d0328ccdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marca las señales como terminado.  <a href="#a1a6e5b76640d7584b749567d0328ccdc">More...</a><br /></td></tr>
<tr class="separator:a1a6e5b76640d7584b749567d0328ccdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c5c0c57b580767a1dd642d77ad8179a"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a4c5c0c57b580767a1dd642d77ad8179a">SkewSymmetricMatrix</a> (const cv::Mat &amp;v)</td></tr>
<tr class="memdesc:a4c5c0c57b580767a1dd642d77ad8179a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Genera una matriz antisimétrica a partir de un vector.  <a href="#a4c5c0c57b580767a1dd642d77ad8179a">More...</a><br /></td></tr>
<tr class="separator:a4c5c0c57b580767a1dd642d77ad8179a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a2d9c44abf1b175880ea418cfc404be87"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a2d9c44abf1b175880ea418cfc404be87">mbAbortBA</a></td></tr>
<tr class="memdesc:a2d9c44abf1b175880ea418cfc404be87"><td class="mdescLeft">&#160;</td><td class="mdescRight">BA abortado.  <a href="#a2d9c44abf1b175880ea418cfc404be87">More...</a><br /></td></tr>
<tr class="separator:a2d9c44abf1b175880ea418cfc404be87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade846d251f505560c45d109c348b39e5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ade846d251f505560c45d109c348b39e5">mbAcceptKeyFrames</a></td></tr>
<tr class="memdesc:ade846d251f505560c45d109c348b39e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Señal para aceptar nuevos keyframes.  <a href="#ade846d251f505560c45d109c348b39e5">More...</a><br /></td></tr>
<tr class="separator:ade846d251f505560c45d109c348b39e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3494232f3f8f3b3dc25dd0da44ad4014"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a3494232f3f8f3b3dc25dd0da44ad4014">mbFinished</a></td></tr>
<tr class="memdesc:a3494232f3f8f3b3dc25dd0da44ad4014"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminado.  <a href="#a3494232f3f8f3b3dc25dd0da44ad4014">More...</a><br /></td></tr>
<tr class="separator:a3494232f3f8f3b3dc25dd0da44ad4014"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a761d63d4351faa22012420d635829df1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a761d63d4351faa22012420d635829df1">mbFinishRequested</a></td></tr>
<tr class="memdesc:a761d63d4351faa22012420d635829df1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminación solicitada.  <a href="#a761d63d4351faa22012420d635829df1">More...</a><br /></td></tr>
<tr class="separator:a761d63d4351faa22012420d635829df1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a809e1936f5670dba26908ae3cd165f13"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a809e1936f5670dba26908ae3cd165f13">mbMonocular</a></td></tr>
<tr class="memdesc:a809e1936f5670dba26908ae3cd165f13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Señal de modo monocular.  <a href="#a809e1936f5670dba26908ae3cd165f13">More...</a><br /></td></tr>
<tr class="separator:a809e1936f5670dba26908ae3cd165f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad68f6c709f31a5dfca64b24967cc77f2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ad68f6c709f31a5dfca64b24967cc77f2">mbNotStop</a></td></tr>
<tr class="memdesc:ad68f6c709f31a5dfca64b24967cc77f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Señal de no parar.  <a href="#ad68f6c709f31a5dfca64b24967cc77f2">More...</a><br /></td></tr>
<tr class="separator:ad68f6c709f31a5dfca64b24967cc77f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3d831745749531e0bfa92b59e3da66e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ab3d831745749531e0bfa92b59e3da66e">mbResetRequested</a></td></tr>
<tr class="memdesc:ab3d831745749531e0bfa92b59e3da66e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reinicio solicitado.  <a href="#ab3d831745749531e0bfa92b59e3da66e">More...</a><br /></td></tr>
<tr class="separator:ab3d831745749531e0bfa92b59e3da66e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada6ab808ccb95293baec4219ac59ca87"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ada6ab808ccb95293baec4219ac59ca87">mbStopped</a></td></tr>
<tr class="memdesc:ada6ab808ccb95293baec4219ac59ca87"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> parado.  <a href="#ada6ab808ccb95293baec4219ac59ca87">More...</a><br /></td></tr>
<tr class="separator:ada6ab808ccb95293baec4219ac59ca87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af38a9dca4bb96b7ae1711336596a609a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#af38a9dca4bb96b7ae1711336596a609a">mbStopRequested</a></td></tr>
<tr class="memdesc:af38a9dca4bb96b7ae1711336596a609a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parada solicitada.  <a href="#af38a9dca4bb96b7ae1711336596a609a">More...</a><br /></td></tr>
<tr class="separator:af38a9dca4bb96b7ae1711336596a609a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a365466d11db0f8e8fc14d76fc0cd83"><td class="memItemLeft" align="right" valign="top">std::list&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a4a365466d11db0f8e8fc14d76fc0cd83">mlNewKeyFrames</a></td></tr>
<tr class="memdesc:a4a365466d11db0f8e8fc14d76fc0cd83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer de solicitud de nuevos keyframes.  <a href="#a4a365466d11db0f8e8fc14d76fc0cd83">More...</a><br /></td></tr>
<tr class="separator:a4a365466d11db0f8e8fc14d76fc0cd83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd75991c0499447411a3bd304cc9fa13"><td class="memItemLeft" align="right" valign="top">std::list&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#afd75991c0499447411a3bd304cc9fa13">mlpRecentAddedMapPoints</a></td></tr>
<tr class="memdesc:afd75991c0499447411a3bd304cc9fa13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lista de nuevos puntos agregados al mapa, que serán revisados por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#acbbb8f04b15e3250e0e24070825d19ae" title="Elimina por varios motivos puntos recién agregados. ">LocalMapping::MapPointCulling</a>.  <a href="#afd75991c0499447411a3bd304cc9fa13">More...</a><br /></td></tr>
<tr class="separator:afd75991c0499447411a3bd304cc9fa13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8668b51cf81fdfde9fd5ee61bd936a19"><td class="memItemLeft" align="right" valign="top">std::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a8668b51cf81fdfde9fd5ee61bd936a19">mMutexAccept</a></td></tr>
<tr class="separator:a8668b51cf81fdfde9fd5ee61bd936a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae067c33c891cb04e9cb8557ab4d7df33"><td class="memItemLeft" align="right" valign="top">std::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ae067c33c891cb04e9cb8557ab4d7df33">mMutexFinish</a></td></tr>
<tr class="separator:ae067c33c891cb04e9cb8557ab4d7df33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a970bb666e27d4e801453e9fc26e779a1"><td class="memItemLeft" align="right" valign="top">std::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a970bb666e27d4e801453e9fc26e779a1">mMutexNewKFs</a></td></tr>
<tr class="separator:a970bb666e27d4e801453e9fc26e779a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf229cc6cbbc4e50f0494946038a0ce8"><td class="memItemLeft" align="right" valign="top">std::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#acf229cc6cbbc4e50f0494946038a0ce8">mMutexReset</a></td></tr>
<tr class="separator:acf229cc6cbbc4e50f0494946038a0ce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06f6b4e0e86ca4d311542dec5039d54a"><td class="memItemLeft" align="right" valign="top">std::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a06f6b4e0e86ca4d311542dec5039d54a">mMutexStop</a></td></tr>
<tr class="separator:a06f6b4e0e86ca4d311542dec5039d54a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e4de53f96e97c6b94b794d0a5bc67e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a1e4de53f96e97c6b94b794d0a5bc67e3">mpCurrentKeyFrame</a></td></tr>
<tr class="memdesc:a1e4de53f96e97c6b94b794d0a5bc67e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Keyframe actual, el último keyframe nuevo que se ha procesado.  <a href="#a1e4de53f96e97c6b94b794d0a5bc67e3">More...</a><br /></td></tr>
<tr class="separator:a1e4de53f96e97c6b94b794d0a5bc67e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac71702f1061f82c457276c014eebc784"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ac71702f1061f82c457276c014eebc784">mpLoopCloser</a></td></tr>
<tr class="memdesc:ac71702f1061f82c457276c014eebc784"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cerrador de bucles.  <a href="#ac71702f1061f82c457276c014eebc784">More...</a><br /></td></tr>
<tr class="separator:ac71702f1061f82c457276c014eebc784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ca97c0d4a6064148315589cc96a3302"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a7ca97c0d4a6064148315589cc96a3302">mpMap</a></td></tr>
<tr class="memdesc:a7ca97c0d4a6064148315589cc96a3302"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapa del mundo.  <a href="#a7ca97c0d4a6064148315589cc96a3302">More...</a><br /></td></tr>
<tr class="separator:a7ca97c0d4a6064148315589cc96a3302"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4d311f49979f38d47ed96290255a2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html">Tracking</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a6b4d311f49979f38d47ed96290255a2f">mpTracker</a></td></tr>
<tr class="memdesc:a6b4d311f49979f38d47ed96290255a2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tracker.  <a href="#a6b4d311f49979f38d47ed96290255a2f">More...</a><br /></td></tr>
<tr class="separator:a6b4d311f49979f38d47ed96290255a2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> tiene una única instancia ejecutando el método Run en su propio thread. </p>
<p>Se encarga de mantener el mapa local, agregando keyframes cuando <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> los crea, y buscando nuevos puntos triangulando desde keyframes vecinos.</p>
<p>Tiene dos conjuntos de métodos: uno para computación del mapa local, otro para interacción con el thread. Estos últimos manejan autómatas finitos de interacción, usualmente iniciados desde afuera, como por ejemplo vía RequestReset, RequestStop o RequestFinish.</p>
<p>Los métodos de computación son protegidos e invocados desde Run.</p>
<p>No hay una entidad formal que represente el "mapa local". El mapa local es un sobconjunto del mapa global, con raíz en el keyframe de referencia, involucrando a los vecinos en el grafo.</p>
<p>Métodos públicos para interacción con el thread</p>
<p>El método Run tiene un bucle infinito, que se ejecuta en su propio thread. Las comunicaciones con él son asincrónicas:</p>
<ul>
<li><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0931d72a1f25f3e012f53f3e693e2a47" title="Solicitud de pausa. ">LocalMapping::RequestStop</a> solicita que pare, que haga una pausa. <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a964b156d8dfcedf91d61e47aa51e973a" title="Informa el si LocalMapping está parado. ">LocalMapping::isStopped</a> se puede consultar para confirmar que paró.</li>
<li>Run entra en un bucle esperando que la señal de reanudamiento.</li>
<li><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#aec0950308ba2d828d9dc16d5be34e654" title="Invocado desde otros hilos, limpia el buffer de keyframes nuevos y reanuda el mapeo. ">LocalMapping::Release</a> solicita que reanude luego de una pausa.</li>
<li><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a1e2754881977ca4d9dc7b3d0c06b4eb8" title="Solicitud de reinicialización. ">LocalMapping::RequestReset</a> reinicializa el objeto limpiando variables. Se invoca desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a899967ca49b1c3446854ecce3873323c" title="Reinicia el sistema. ">Tracking::Reset</a>. El reseteo es asincrónico, no hay señal que indique que ya ocurrió.</li>
<li><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ac22bd2b73269435e04c353190eae7c13" title="Solicita terminar para cerrar el sistema. ">LocalMapping::RequestFinish</a> solicita terminar. Se puede consultar con <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a06ce22a736be265a6856582d31e888d6" title="Informa si LocalMapping ha terminado. ">LocalMapping::isFinished</a>. En la práctica no hace nada. </li>
</ul>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa87b27706cc45e36cbb8c7a21c90ed23"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ORB_SLAM2::LocalMapping::LocalMapping </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *&#160;</td>
          <td class="paramname"><em>pMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&#160;</td>
          <td class="paramname"><em>bMonocular</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor de la única instancia de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mMap</td><td>Mapa global. </td></tr>
    <tr><td class="paramname">bMonocular</td><td>Señal que indica que el sistema es monocular. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ab0900c4ceaf6a615f53bc113f682daa6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::AcceptKeyFrames </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Informa si <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> acepta nuevos keyframes. </p>

</div>
</div>
<a id="a872cbbdab3f88ffc2d9d395ef2cf0e8d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::CheckFinish </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Informa si terminó. </p>

</div>
</div>
<a id="a27db88f75fe6f2bd43b0bd0769d56462"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::CheckNewKeyFrames </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Consulta la lista de nuvos keyframes mlNewKeyFrames. </p>
<dl class="section return"><dt>Returns</dt><dd>true si hay keyframes en la lista. </dd></dl>

</div>
</div>
<a id="ac72419089ac268253671b8da2ec12c21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::LocalMapping::ComputeF12 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&amp;&#160;</td>
          <td class="paramname"><em>pKF1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&amp;&#160;</td>
          <td class="paramname"><em>pKF2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Computa la matriz fundamental F del keyframe 1 respecto del keyframe 2. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pKF1</td><td>Primer keyframe </td></tr>
    <tr><td class="paramname">pKF2</td><td>Segundo keyframe </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>La matriz fundamental F12.</dd></dl>
<p>Invocado sólo desde CreateNewMapPoints. </p>

</div>
</div>
<a id="ac06b513357429d9eff89e29d2ae58d6c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::CreateNewMapPoints </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>El ciclo de mapeo local invoca periódicamente este método, que busca macheos candidatos para su triangulación y agregado al mapa. </p>
<p>La búsqueda se hace triangulando puntos del keyframe actual y todos sus vecinos en el grafo. Invoca a SearchForTriangulation para obtener los pares macheados. Luego evalúa el paralaje para descartar el punto. Finalmente triangula son SVD y lo agrega al mapa. Realiza esta operación para el keyframe actual, comparado con cada uno de sus vecinos en el grafo. </p>

</div>
</div>
<a id="af2d70466a1a217fb7e55d874931ce688"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::InsertKeyFrame </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td>
          <td class="paramname"><em>pKF</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Método usado por el tracker para solicitar la inclusión de un nuevo keyframe. </p>
<p>Este método agrega el keyframe a la cola <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a4a365466d11db0f8e8fc14d76fc0cd83" title="Buffer de solicitud de nuevos keyframes. ">LocalMapping.mlNewKeyFrames</a>, que se procesa en un hilo aparte, en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0f9fa8a0236f55629b0f485db05deb2c" title="Bucle principal del thread de mapeo local. ">LocalMapping.Run</a> por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a84eea8f268cce9d919a4906ae634dd22" title="Actualiza LocalMapping.mpCurrentKeyFrame, y quita el nuevo keyframe de la lista LocalMapping.mlNewKeyFrames. ">LocalMapping.ProcessNewKeyFrame</a>.</p>
<p>Invocado sólo desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a>. </p>

</div>
</div>
<a id="ad8fcbbdacfaeca558c5aaff32f42a57b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::InterruptBA </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Solicita interrupción de BA. </p>
<p>Invocado desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a>. </p>

</div>
</div>
<a id="a06ce22a736be265a6856582d31e888d6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::isFinished </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Informa si <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> ha terminado. </p>

</div>
</div>
<a id="a964b156d8dfcedf91d61e47aa51e973a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::isStopped </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Informa el si <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> está parado. </p>

</div>
</div>
<a id="aca73e5b4bace436b235dfa9c9a522b19"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::KeyFrameCulling </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Elimina keyframes redundantes, que no agregan información. </p>
<p>Busca en el mapa local solamente y elimina los keyframes con más del 90% de sus puntos observados por otros keyframes. Se invoca desde el bucle principal de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0f9fa8a0236f55629b0f485db05deb2c" title="Bucle principal del thread de mapeo local. ">LocalMapping::Run</a>. </p>

</div>
</div>
<a id="a8299d3b0c603784de01ac2242f4916be"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::LocalMapping::KeyframesInQueue </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Informa la cantidad de keyframes en la cola para agregarse al mapa. </p>

</div>
</div>
<a id="acbbb8f04b15e3250e0e24070825d19ae"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::MapPointCulling </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Elimina por varios motivos puntos recién agregados. </p>
<p>Los elimina si el punto es malo, o muy poco observado. Se invoca desde el bucle principal de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0f9fa8a0236f55629b0f485db05deb2c" title="Bucle principal del thread de mapeo local. ">LocalMapping::Run</a>. </p>

</div>
</div>
<a id="a84eea8f268cce9d919a4906ae634dd22"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::ProcessNewKeyFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Actualiza <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a1e4de53f96e97c6b94b794d0a5bc67e3" title="Keyframe actual, el último keyframe nuevo que se ha procesado. ">LocalMapping.mpCurrentKeyFrame</a>, y quita el nuevo keyframe de la lista <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a4a365466d11db0f8e8fc14d76fc0cd83" title="Buffer de solicitud de nuevos keyframes. ">LocalMapping.mlNewKeyFrames</a>. </p>
<p>Para cada punto 3D visualizado computa BoW y recomputa descriptores, normal y profundidad.</p>
<p>Invocado sólo desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0f9fa8a0236f55629b0f485db05deb2c" title="Bucle principal del thread de mapeo local. ">LocalMapping.Run</a>. </p>

</div>
</div>
<a id="aec0950308ba2d828d9dc16d5be34e654"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::Release </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Invocado desde otros hilos, limpia el buffer de keyframes nuevos y reanuda el mapeo. </p>

</div>
</div>
<a id="ac22bd2b73269435e04c353190eae7c13"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::RequestFinish </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Solicita terminar para cerrar el sistema. </p>

</div>
</div>
<a id="a1e2754881977ca4d9dc7b3d0c06b4eb8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::RequestReset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Solicitud de reinicialización. </p>
<p>Invocado sólo por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a899967ca49b1c3446854ecce3873323c" title="Reinicia el sistema. ">Tracking::Reset</a>. </p>

</div>
</div>
<a id="a0931d72a1f25f3e012f53f3e693e2a47"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::RequestStop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Solicitud de pausa. </p>
<p>Otros hilos solicitan detener momentáneamente <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> para interactuar con el mapa, generalmente para BA. Se invoca también cuando se pasa a modo solo tracking, sin mapeo. Luego de solicitar la parada, esperan que se cumpla consultando <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a964b156d8dfcedf91d61e47aa51e973a" title="Informa el si LocalMapping está parado. ">LocalMapping::isStopped</a>. Para reanudar el mapeo, hay que invocar <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#aec0950308ba2d828d9dc16d5be34e654" title="Invocado desde otros hilos, limpia el buffer de keyframes nuevos y reanuda el mapeo. ">LocalMapping::Release</a>. </p>

</div>
</div>
<a id="a3fe34beadb62eaa9446c96d27a5d12c9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::ResetIfRequested </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Procesa la solicitud de reinicio. </p>

</div>
</div>
<a id="a0f9fa8a0236f55629b0f485db05deb2c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::Run </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bucle principal del thread de mapeo local. </p>
<p>Recibe y procesa pedidos de control, como reset, finish, etc. Cuando hay keyframes en la lista de nuevos keyframes, los procesa disparando las tareas principales del mapeo en este orden:</p>
<p>-ProcessNewKeyFrame -MapPointCulling -CreateNewMapPoints -SearchInNeighbors -Optimizer::LocalBundleAdjustment -KeyFrameCulling</p>
<p>Si hay varios nuevos keyframes en la lista, procesa de a uno por bucle. Algunas de las tareas principales listadas no se ejecutan hasta que se vacía la lista de nuevos keyframes. </p>

</div>
</div>
<a id="a5d5e0bc6fd15d9a6bf1ca8a258f104f1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::SearchInNeighbors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Recorre los keyframes vecinos buscando puntos para fusionar. </p>
<p>Es el único lugar que invoca <a class="el" href="class_o_r_b___s_l_a_m2_1_1_o_r_bmatcher.html#add796fcf9f5cae91393d4c0b767e0183" title="Proyecta puntos del mapa sobre un keyframe y busca puntos duplicados, como parte del mapeo local...">ORBmatcher::Fuse</a> Recorre los vecinos de primer y segundo orden. SearchInNeighbors se ejecuta sólo <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a0f9fa8a0236f55629b0f485db05deb2c" title="Bucle principal del thread de mapeo local. ">LocalMapping::Run</a> apenas termina de procesar todos los nuevos keyframes. </p>

</div>
</div>
<a id="a5b29c603541a13d670c53348e59081bf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::SetAcceptKeyFrames </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Establece la aceptación de nuevos keyframes. </p>

</div>
</div>
<a id="a1a6e5b76640d7584b749567d0328ccdc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::SetFinish </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Marca las señales como terminado. </p>

</div>
</div>
<a id="af64985dda85b4f0775ef2ef7fc9b5942"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::SetLoopCloser </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a> *&#160;</td>
          <td class="paramname"><em>pLoopCloser</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registra el LoopCloser, la única instancia en el sistema. </p>

</div>
</div>
<a id="ae33aa5640d61d5434bd0ad00e27d8e76"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::SetNotStop </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Establece la señal de no parar, que ignora solicitudes de parada. </p>
<p>Invocado desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a>. </p>

</div>
</div>
<a id="a164b3d0a2a75daba006469ea8aca8a63"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::LocalMapping::SetTracker </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html">Tracking</a> *&#160;</td>
          <td class="paramname"><em>pTracker</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registra el tracker, la única instancia en el sistema. </p>

</div>
</div>
<a id="a4c5c0c57b580767a1dd642d77ad8179a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::LocalMapping::SkewSymmetricMatrix </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Genera una matriz antisimétrica a partir de un vector. </p>
<p>Una matriz es antisimétrica cuando su traspuesta es su negativa.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>Vector 1x3. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Matriz antisimétrica de 3x3. </dd></dl>

</div>
</div>
<a id="a6acf915f6b65bd4e2341e85a320d4930"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::Stop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Invocado en el bucle principal de Run, para procesar pedidos de parada. </p>
<p>Si hay un pedido de parada, devuelve true. </p>

</div>
</div>
<a id="a0474accda8e5e59048c10b1a71269881"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::stopRequested </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Informa si se ha solicitado una parada. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a2d9c44abf1b175880ea418cfc404be87"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbAbortBA</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>BA abortado. </p>

</div>
</div>
<a id="ade846d251f505560c45d109c348b39e5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbAcceptKeyFrames</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Señal para aceptar nuevos keyframes. </p>

</div>
</div>
<a id="a3494232f3f8f3b3dc25dd0da44ad4014"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbFinished</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Terminado. </p>

</div>
</div>
<a id="a761d63d4351faa22012420d635829df1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbFinishRequested</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Terminación solicitada. </p>

</div>
</div>
<a id="a809e1936f5670dba26908ae3cd165f13"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbMonocular</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Señal de modo monocular. </p>

</div>
</div>
<a id="ad68f6c709f31a5dfca64b24967cc77f2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbNotStop</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Señal de no parar. </p>

</div>
</div>
<a id="ab3d831745749531e0bfa92b59e3da66e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbResetRequested</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reinicio solicitado. </p>

</div>
</div>
<a id="ada6ab808ccb95293baec4219ac59ca87"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbStopped</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> parado. </p>

</div>
</div>
<a id="af38a9dca4bb96b7ae1711336596a609a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::LocalMapping::mbStopRequested</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parada solicitada. </p>

</div>
</div>
<a id="a4a365466d11db0f8e8fc14d76fc0cd83"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>*&gt; ORB_SLAM2::LocalMapping::mlNewKeyFrames</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Buffer de solicitud de nuevos keyframes. </p>
<p>Cola FIFO, los nuevos pedidos se agregan al final con push_back, y se procesa el keyframe obtenido de front. </p>

</div>
</div>
<a id="afd75991c0499447411a3bd304cc9fa13"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a>*&gt; ORB_SLAM2::LocalMapping::mlpRecentAddedMapPoints</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Lista de nuevos puntos agregados al mapa, que serán revisados por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#acbbb8f04b15e3250e0e24070825d19ae" title="Elimina por varios motivos puntos recién agregados. ">LocalMapping::MapPointCulling</a>. </p>

</div>
</div>
<a id="a8668b51cf81fdfde9fd5ee61bd936a19"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::mutex ORB_SLAM2::LocalMapping::mMutexAccept</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ae067c33c891cb04e9cb8557ab4d7df33"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::mutex ORB_SLAM2::LocalMapping::mMutexFinish</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a970bb666e27d4e801453e9fc26e779a1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::mutex ORB_SLAM2::LocalMapping::mMutexNewKFs</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="acf229cc6cbbc4e50f0494946038a0ce8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::mutex ORB_SLAM2::LocalMapping::mMutexReset</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a06f6b4e0e86ca4d311542dec5039d54a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::mutex ORB_SLAM2::LocalMapping::mMutexStop</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a1e4de53f96e97c6b94b794d0a5bc67e3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>* ORB_SLAM2::LocalMapping::mpCurrentKeyFrame</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Keyframe actual, el último keyframe nuevo que se ha procesado. </p>

</div>
</div>
<a id="ac71702f1061f82c457276c014eebc784"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a>* ORB_SLAM2::LocalMapping::mpLoopCloser</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cerrador de bucles. </p>

</div>
</div>
<a id="a7ca97c0d4a6064148315589cc96a3302"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a>* ORB_SLAM2::LocalMapping::mpMap</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mapa del mundo. </p>

</div>
</div>
<a id="a6b4d311f49979f38d47ed96290255a2f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html">Tracking</a>* ORB_SLAM2::LocalMapping::mpTracker</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Tracker. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/include/<a class="el" href="_local_mapping_8h_source.html">LocalMapping.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/src/<a class="el" href="_local_mapping_8cc.html">LocalMapping.cc</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_o_r_b___s_l_a_m2.html">ORB_SLAM2</a></li><li class="navelem"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">LocalMapping</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
